Mediapipe Handsを使ってみる

python

Mediapipeって何?

開発元であるGoogleBardに聞いてみた


MediaPipeは、Googleが開発した、顔、手、身体などの姿勢を検出するためのオープンソースの機械学習ライブラリです。MediaPipeは、iOS、Android、Web、C++、Pythonなどの様々なプラットフォームに対応しています。また、軽量なモデルを使用しているため、モバイル端末でも高速に動作します。

MediaPipeは、様々なアプリケーションに使用されています。例えば、顔認識、手書き文字認識、モーションキャプチャ、バーチャルリアリティなどのアプリケーションに使用されています。

MediaPipeは、姿勢検出を簡単に行うことができるライブラリです。MediaPipeを使用することで、簡単に姿勢検出のアプリケーションを開発することができます。

MediaPipe  |  Google for Developers

ちょっと難しいのでギャルに聞いてみた


こんちゃー!

最近、姿勢検出ライブラリの「MediaPipe」が話題になってるねー。

MediaPipeって、Googleが開発したオープンソースのライブラリで、顔や手、身体などの特徴点を検出することができるんだー。

これを使うと、顔認識や手書き文字認識、ジェスチャー制御などのアプリケーションを簡単に開発することができるよー。

MediaPipeは、まだ開発中のライブラリだけど、すでに多くの機能が提供されているんだー。興味がある人は、MediaPipeのウェブサイトをチェックしてみてねー。

なるほど人体の姿勢をリアルタイムに検出できるのですな、では早速使いましょう。

Mediapipe Hands のpythonでの環境構築

環境構築はとても簡単です。GoogleColabにもインストールは可能ですが、今回はPCに付属しているカメラをつかって色々な処理をしたいため、ローカル環境で実行していきます。
1.Python 3.8 以上をインストールします。

2.Pip を使用して MediaPipe をインストールします。

pip install mediapipe

Webカメラからの手の検出

サンプルコードをほぼそのまま実行するだけです。内部の処理にはopenCVが使われています。

import cv2
import numpy as np
import mediapipe as mp

mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_hands = mp.solutions.hands

# カメラキャプチャの設定
camera_no = 0
video_capture = cv2.VideoCapture(camera_no)
video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 360)

if __name__ == '__main__':
    with mp_hands.Hands(static_image_mode=True,
                        max_num_hands=2,
                        min_detection_confidence=0.5) as hands:
        try:
            while video_capture.isOpened():
                # カメラ画像の取得
                ret, frame = video_capture.read()
                if ret is False:
                    print("カメラの取得できず")
                    break

                # 鏡になるよう反転
                frame = cv2.flip(frame, 1)

                # OpenCVとMediaPipeでRGBの並びが違うため、処理前に変換しておく。
                image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
                image.flags.writeable = False

                # 推論処理
                hands_results = hands.process(image)

                # 前処理の変換を戻しておく。
                image.flags.writeable = True
                write_image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)

                # 有効なランドマーク(今回で言えば手)が検出された場合、ランドマークを描画します。
                if hands_results.multi_hand_landmarks:
                    for landmarks in hands_results.multi_hand_landmarks:
                        mp_drawing.draw_landmarks(
                            write_image,
                            landmarks,
                            mp_hands.HAND_CONNECTIONS,
                            mp_drawing_styles.get_default_hand_landmarks_style(),
                            mp_drawing_styles.get_default_hand_connections_style())

                # ディスプレイ表示
                cv2.imshow('hands', write_image)
                key = cv2.waitKey(1)
                if key == 27:  # ESCが押されたら終了
                    print("終了")
                    break
        finally:
            video_capture.release()
            cv2.destroyAllWindows()

実行結果になります。遅延なく手の検出ができています。精度もまあまあ

Mediapipe Handsの使い道をGoogleBardに聞いてみた

せっかくなので使い道をGoogleBardに聞いてみます。
Mediapipe Handsの医療データへの使い方をいくつか提案してください

Mediapipe Handsは、医療分野で手と指の動きを分析するための強力なツールです。このライブラリは、手術の安全性と効率を向上させたり、リハビリテーションの成功率を高めたりするのに役立ちます。

以下は、Mediapipe Handsを使用した医療分野での手と指の動きの分析の一例です。

  • 手術中の外科医の動きを追跡して、手術の安全性と効率を向上させることができます。
  • リハビリ中の患者の指の動きの進捗状況を追跡して、リハビリテーションの成功率を高めることができます。
  • 患者の指の動きを分析して、病気の早期発見や診断に役立てることができます。
  • 患者の指の動きを分析して、新しい治療法やリハビリテーション方法の開発に役立てることができます。

Mediapipe Handsは、医療分野で手と指の動きを分析するための強力なツールです。このライブラリは、手術の安全性と効率を向上させたり、リハビリテーションの成功率を高めたりするのに役立ちます。

2023.05.29 by Google Bard

アイデアは出してくれるみたい、ついでにBingAIにも聞いてみましたが全く同じ意見!多分学習データが同じなのでしょう。他の使い方を聞いてみました。

Mediapipe Handsは、Googleが開発したオープンソースのライブラリで、顔や手、身体などの特徴点を検出することができます。このライブラリを使用すると、顔認識や手書き文字認識、ジェスチャー制御などのアプリケーションを簡単に開発することができます。Mediapipe Handsはまだ開発中のライブラリですが、すでに多くの機能が提供されています。

2023.5.29 by BingAI


次回からは手の座標をCSVに取得して、いろいろ学習させていきます。

Qt 5 and OpenCV 4 Computer Vision Projects Get up to speed with cross-platform computer vision app development by building seven practical projects【電子書籍】[ Zhuo Qingliang ]
価格:3,290円 (2023/5/29時点)楽天で購入

コメント

Copied title and URL